package com.softer.chengxin.score.controller;

import com.github.pagehelper.PageInfo;
import com.softer.chengxin.common.domin.Common;
import com.softer.chengxin.common.domin.Page;
import com.softer.chengxin.score.entity.ScoreComposite;
import com.softer.chengxin.score.entity.ScoreCompositeProvince;
import com.softer.chengxin.score.service.ScoreManagerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpSession;
import java.util.ArrayList;

/**
 * @author Gong Zhiyang
 * @date 2018/10/12
 */
@RestController
public class ScoreManagerController {
    @Autowired
    private ScoreManagerService scoreManagerService;

    /**
     * 获取企业信用等级，总得分，优良信息得分，负面信息得分，基础信息得分
     *
     * @param session 缓存信息
     * @return 企业信用得分
     */
    @PostMapping(value = "/api/ScoreManager/GetScore")
    public ScoreComposite getScore(HttpSession session) {
        // 查询企业ID
        Integer id = (Integer) session.getAttribute(Common.ID);
        if (id == null) {
            return new ScoreComposite();
        }
        return scoreManagerService.getScore(id);
    }

    /**
     * 获取企业信用等级列表
     *
     * @param page        页面实体
     * @param scoreComposite 查询实体
     * @param session     缓存
     * @return 信用等级集合
     */
    @PostMapping("/api/ScoreManager/getScoreList")
    public PageInfo<ScoreComposite> getScoreList(Page page, ScoreComposite scoreComposite, HttpSession session) {
        // 查询企业ID
        Integer id = (Integer) session.getAttribute(Common.ID);
        if (id == null) {
            return new PageInfo<>(new ArrayList<>());
        }
        scoreComposite.setCompanyId(id);
        return scoreManagerService.getScoreList(page, scoreComposite);
    }
    /**
     * 获取省平台推送的
     * 企业信用等级，总得分，优良信息得分，负面信息得分，基础信息得分
     *
     * @param session 缓存信息
     * @return 企业信用得分
     */
    @PostMapping(value = "/api/ScoreManager/getScoreFromProvince")
    public ScoreCompositeProvince getScoreFromProvince(HttpSession session) {
        // 查询企业ID
        Integer id = (Integer) session.getAttribute(Common.ID);
        if (id == null) {
            return new ScoreCompositeProvince();
        }
        return scoreManagerService.getScoreFromProvince(id);
    }
    /**
     * 获取省平台推送的 企业信用等级列表
     *
     * @param page           页面实体
     * @param scoreComposite 查询实体
     * @param session        缓存
     * @return 信用等级集合
     */
    @PostMapping("/api/ScoreManager/getScoreListFromProvince")
    public PageInfo<ScoreCompositeProvince> getScoreListFromProvince(Page page, ScoreComposite scoreComposite, HttpSession session) {
        // 查询企业ID
        Integer id = (Integer) session.getAttribute(Common.ID);
        if (id == null) {
            return new PageInfo<>(new ArrayList<>());
        }
        scoreComposite.setCompanyId(id);
        return scoreManagerService.getScoreListFromProvince(page, scoreComposite);
    }
}
